package com.cskaoyan.javse.oop2._1extends._10final._3variable._1local;

/**
 * final修饰局部变量
 * 我们以final修饰方法中的局部变量为例子,方法的局部位置,有两个:
 *      1.方法体中
 *          语法: final 数据类型 变量名 = 值;
 *
 *      2.形参列表中
 *          语法: final 数据类型 变量名;
 *          这个语法不意味着 方法只能传入常量作为实参,而是这个实参一旦传入就不可更改了
 *
 *
 * @since 15:57
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
    public static void main(String[] args) {
        test(213123);
    }

    public static void test(final int p) {
        // Cannot assign a value to final variable 'p'
        // p = 100;
        // 定义final int常量
        final int a = 10;
        // Cannot assign a value to final variable 'a'
        // a = 100;

        final Student s = new Student(18);
        System.out.println(s.age);
        s.age = 100;
        // Cannot assign a value to final variable 's'
        // s = new Student(28);
    }
}

class Student {
    int age;

    public Student(int age) {
        this.age = age;
    }
}